#!/bin/bash

function mostrarUso
{
  echo "$0 [fuente]"
  echo "fuente: (s|l)"
  echo "(s)vn: Se descarga contenido del SVN y se crea el paquete"
  echo "(l)ocal: Respetando la estructura de directorios del proyecto se crea el paquete a partir de los archivos locales (útil cuando se quiere probar alguna modificación que no se subió al SVN)"
  exit 1
}

if [ $# -ne 1 ]
then
  mostrarUso
fi

if [ $1 = "s" ]
then
  svn checkout http://75-08-so-g2-tw.googlecode.com/svn/ 75-08-so-g2-tw-read-only 2>&1 1>/dev/null

  if [ $? -ne 0 ]
  then
    echo "Error al intentar recuperar paquete desde SVN"
    exit 1
  else
    echo "Paquete descargado de SVN con éxito"
  fi

  mv 75-08-so-g2-tw-read-only 75-08-so-g2-tw

  if [ $? -ne 0 ]
  then
    echo "Error al intentar renombrar la carpeta raiz del paquete"
    exit 1
  fi

elif [ "$1" = "l" ]
then
  RUTA_TP="75-08-so-g2-tw/trunk/TP"
  mkdir -p $RUTA_TP
  cp -r ../../bin $RUTA_TP
  cp -r ../../arribos $RUTA_TP
  cp -r ../../confdir $RUTA_TP
  cp -r ../../maestros $RUTA_TP
  cp -r ../../readme $RUTA_TP
else
  mostrarUso
fi

# Se borran las carpetas .svn
find 75-08-so-g2-tw/ -name ".svn" -execdir rm -rf '{}' \; 2>/dev/null
# Se borran las carpetas generadas automaticamente en el SVN
rm -rf 75-08-so-g2-tw/branches/ 75-08-so-g2-tw/tags/ 75-08-so-g2-tw/wiki/
# Se borran las carpetas utilizadas para pruebas sin instalación
rm -rf ./75-08-so-g2-tw/trunk/TP/aceptados/ ./75-08-so-g2-tw/trunk/TP/log ./75-08-so-g2-tw/trunk/TP/procesados/ ./75-08-so-g2-tw/trunk/TP/rechazados/ ./75-08-so-g2-tw/trunk/TP/test/ ./75-08-so-g2-tw/trunk/TP/reportes/

chmod +x ./75-08-so-g2-tw/trunk/TP/bin/*
chmod -x ./75-08-so-g2-tw/trunk/TP/bin/linkConfW5

tgz 75-08-so-g2-tw.tgz 75-08-so-g2-tw/ > /dev/null

if [ $? -ne 0 ]
then
  echo "Error al intentar crear el paquete tgz"
  exit 1
fi

echo "Paquete creado con éxito"

rm -rf 75-08-so-g2-tw

if [ $? -ne 0 ]
then
  echo "Error al intentar borrar la carpeta raiz del paquete"
  exit 1
fi

exit 0
